4-2 禰遛JPX

對 Perl 來說,標準輸入就是鍵盤,可用 來表示,因此若要從鍵盤讀取使用者的輸入,可用下列範例程式碼(tstdin1.pl):

原始檔(tstdin1.pl):(灰色區域按兩下即可拷貝)
while ($line = <STDIN>) {
	print $line;
}

以上範例可以簡化如下(tstdin2.pl):

原始檔(tstdin2.pl):(灰色區域按兩下即可拷貝)
while (<STDIN>) {
	print;
}

在上例中,Perl 會自動取用虛擬變數 $_ 來取代 $line 的角色。

若要顯示由命令列(Command Line)所送進來的檔案,可使用下列程式碼(tcmd1.pl):

原始檔(tcmd1.pl):(灰色區域按兩下即可拷貝)
while (defined($line = <>)) {
	print $line;
}

亦可簡化如下(tcmd2.pl):

原始檔(tcmd2.pl):(灰色區域按兩下即可拷貝)
while (<>) {
	print;
}

在上例中,「<>>」即代表存放於陣列變數 @ARGV 的檔案名稱,或是由命令列送入的檔案名稱。因此若輸入下列命令:

perl tcmd1.pl tstdin1.pl tstdin2.pl 螢幕即會印出 tstdin1.pl 和 tstdin2.pl 兩檔案的內容,其功能和 DOS 下的 type 命令或 UNIX 下的 cat 命令是相同的。

若要將訊息列印至標準輸出(即螢幕),可使用 print 命令,例如下面兩獵程式碼,都可將 "This is a test!" 送至螢幕:

print "This is a test!\n"; print("This is a test!\n"); 其中「\n」代表換行符號。print 也可以接受由逗點分開的字串,所以上面的程式碼也可以寫成: print("This ", "is a test!", "\n"); print 還有一個特異功能,可以產生所謂的 Here Document,例如(tprint1.pl):

原始檔(tprint1.pl):(灰色區域按兩下即可拷貝)
print << "END_OF_DOC";
Content-type: text/HTML

<html>
<body>
This is a test homepage returned by a Perl program!
</body>
</html>
END_OF_DOC

在上例中,print 會印出其後的各列文字,直到 END_OF_DOC 出現為止。(當然,你也可以將 END_OF_TEXT 改成任何與所印出訊息不相干的文字,例如 END_OF_TEXT 或 END_OF_HTML 等。)

若要產生較複雜的輸出,就必須靠 printf 命令,其用法和 C 語言的 printf 幾乎是一致的,例如:

printf("%10s %8d \t%5.3f\n" , $str, $integ, $real); 上述程式碼將會使用 10 個字元的欄位來印出字串 $str,接一個空白,再用 8 個字元的欄位來印出整數 $integ,接一個空白,再接一個定位鍵(Tab,\t),然後用 5 個字元的欄位(整數部分佔了三個字元)來印出浮點數 $real。讀者可由電腦命令列輸入「perldoc -f printf」來取得更多有關 printf 的說明。
Perl